package com.imooc.config;

import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author: ZhaoYiChen
 * @create: 2020-09-28 14:51
 **/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    // 实现静态资源的映射
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        /**
         * file:加载非编译类的文件系统，即：作为 URL 从文件系统中加载。
         * classpath:加载编译的class文件系统，即：从classpath中加载。
         * classpath*：可以代表多个匹配文件
         * classpath：可以代表一个匹配文件
         * http: 即:作为url加载
         * (none): 根据ApplicationContext 进行上下文进行判断
         *
         * /* 是拦截所有的文件夹，不包含子文件夹
         * /** 是拦截所有的文件夹及里面的子文件夹
         */
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:\\META-INF\\resources\\") // 映射编译后本地资源 保证swagger2 可以正常使用
                .addResourceLocations("file:\\workspaces\\images\\");  //映射本地静态资源
    }

    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        return builder.build();
    }
}
